Everything about Parallel Port totally explained
A
parallel port is a type of interface found on
computers (
personal and otherwise) for connecting various peripherals. It is also known as a
printer port or
Centronics port . The
IEEE 1284 standard defines the bi-directional version of the port.
History
The
Centronics Model 101 printer was introduced in 1970 and included the first parallel interface for printers. The interface was developed by Dr.
An Wang, Robert Howard and Prentice Robinson at
Wang Laboratories. The now-familiar connector was selected because Wang had a surplus stock of 20,000
Amphenol 36-pin
micro ribbon connectors that were originally used for one of their early calculators. The Centronics parallel interface quickly became a
de facto industry standard; manufacturers of the time tended to use various connectors on the system side, so a variety of cables were required. For example, early
VAX systems used a
DC-37 connector,
NCR used the 36-pin micro ribbon connector,
Texas Instruments used a 25-pin card edge connector and
Data General used a 50-pin micro ribbon connector.
Dataproducts introduced a very different implementation of the parallel interface for their printers. It used a
DC-37 connector on the host side and a 50 pin connector on the printer side—either a
DD-50 (sometimes incorrectly referred to as a "DB50") or the block shaped M-50 connector; the M-50 was also referred to as Winchester. Dataproducts parallel was available in a short-line for connections up to and a long-line version for connections from to . The Dataproducts interface was found on many mainframe systems up through the 1990s, and many printer manufacturers offered the Dataproducts interface as an option.
IBM released the
IBM Personal Computer in 1981 and included a variant of the Centronics interface— only IBM logo printers (
rebranded from
Epson) could be used with the IBM PC. IBM standardized the parallel cable with a
DB25F connector on the PC side and the Centronics connector on the printer side. Vendors soon released printers compatible with both standard Centronics and the IBM implementation.
IBM implemented an early form of bidirectional interface in in 1987.
HP introduced their version of bidirectional, known as
Bitronics, on the
LaserJet 4 in 1992. The Bitronics and Centronics interfaces were superseded by the
IEEE 1284 standard in 1994.
Uses
Before the advent of
USB, the parallel interface was adapted to access a number of peripheral devices other than printers. Probably one of the earliest devices to use parallel were
dongles used as a hardware key form of software copy protection.
Zip drives and
scanners were early implementations followed by external
modems,
sound cards,
webcams,
gamepads,
joysticks and external
hard disk drives and
CD-ROM drives. Adapters were available to run
SCSI devices via parallel. Other devices such as
EPROM programmers and hardware controllers could be connected parallel.
Current use
At the consumer level, the
USB interface—and in some cases
Ethernet—has effectively replaced the parallel printer port. Many manufacturers of personal computers and laptops consider parallel to be a
legacy port and no longer include the parallel interface. USB to parallel adapters are available to use parallel-only printers with USB-only systems.
Implementation on IBM personal computers
Port addresses
Traditionally IBM PC systems have allocated their first three parallel ports according to the configuration in the table below.
If there's an unused LPTx slot, the port addresses of the others are moved up. (For example, if a port at 0x3bc doesn't exist, the port at 0x378 will then become LPT1.) The IRQ lines, however, remain fixed (therefore, 0x378 at LPT1 would use IRQ 7). Unfortunately the default IRQ used by the first two addresses is the same, and it's difficult to get correct interrupt behaviour if both of these addresses are in use. The port addresses assigned to each LPTx slot can be determined by reading the BIOS Data Area (BDA) at 0000:0408.
Bit to Pin Mapping for the Standard Parallel Port (SPP):
| Address |
|
MSB |
|
|
|
|
|
|
LSB |
| |
Bit: |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Base |
Pin: |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
Base+1 |
Pin: |
~11 |
10 |
12 |
13 |
15 |
|
|
|
Base+2 |
Pin: |
|
|
|
|
~17 |
16 |
~14 |
~1 |
~ indicates a hardware inversion of the bit.
Program interface
In versions of
Microsoft Windows that didn't use the
Windows NT kernel (as well as
MS-DOS and some other operating systems), programs could access the parallel port with simple outportb and inportb subroutine commands. In operating systems such as
Windows NT and
Unix (
NetBSD,
FreeBSD,
Solaris,
386BSD, etc), the microprocessor is operated in a different security ring, and accesses to the parallel port is inhibited, unless using the required driver. This improves security and arbitration of device contention. On Linux, inb and outb can be used when a process is run as root and an ioperm command is used to allow access to its
base address.
Pinouts
Pinouts for a DB25 connector are:
| Pin No (DB25) |
Signal name |
Direction |
Register - bit |
Inverted |
| 1 |
nStrobe |
Out |
Control-0 |
Yes |
| 2 |
Data0 |
In/Out |
Data-0 |
No |
| 3 |
Data1 |
In/Out |
Data-1 |
No |
| 4 |
Data2 |
In/Out |
Data-2 |
No |
| 5 |
Data3 |
In/Out |
Data-3 |
No |
| 6 |
Data4 |
In/Out |
Data-4 |
No |
| 7 |
Data5 |
In/Out |
Data-5 |
No |
| 8 |
Data6 |
In/Out |
Data-6 |
No |
| 9 |
Data7 |
In/Out |
Data-7 |
No |
| 10 |
nAck |
In |
Status-6 |
No |
| 11 |
Busy |
In |
Status-7 |
Yes |
| 12 |
Paper-Out |
In |
Status-5 |
No |
| 13 |
Select |
In |
Status-4 |
No |
| 14 |
Linefeed |
Out |
Control-1 |
Yes |
| 15 |
nError |
In |
Status-3 |
No |
| 16 |
nInitialize |
Out |
Control-2 |
No |
| 17 |
nSelect-Printer |
Out |
Control-3 |
Yes |
| 18-25 |
Ground |
- |
- |
- |
Monodirectional parallel ports
In early parallel ports the data lines were monodirectional (data out only) so it wasn't easily possible to feed data in to the computer. However, a workaround was possible by using 4 of the 5 status lines. A circuit could be constructed to split each 8-bit byte into two 4-bit
nibbles which were fed in sequentially through the status lines. Each pair of nibbles was then re-combined into an 8-bit byte.
Further Information
Get more info on 'Parallel Port'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://parallel_port.totallyexplained.com">Parallel port Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |